.TH std::ranges::enumerate_view::end 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::enumerate_view::end \- std::ranges::enumerate_view::end

.SH Synopsis
   constexpr auto end() requires (!__simple_view<V>);                 \fB(1)\fP (since C++23)
   constexpr auto end() const requires                                \fB(2)\fP (since C++23)
   /*range-with-movable-references*/<const V>;

   Returns an iterator or a sentinel that compares equal to the end iterator of the
   enumerate_view.

   Let base_ denote the underlying view.

   1) Equivalent to:

 if constexpr (ranges::forward_range<V> and
               ranges::common_range<V>  and
               ranges::sized_range<V>)
     return /*iterator*/<false>(ranges::end(base_), ranges::distance(base_));
 else
     return /*sentinel*/<false>(ranges::end(base_));

   2) Equivalent to:

 if constexpr (ranges::forward_range<const V> and
               ranges::common_range<const V>  and
               ranges::sized_range<const V>)
     return /*iterator*/<true>(ranges::end(base_), ranges::distance(base_));
 else
     return /*sentinel*/<true>(ranges::end(base_));

.SH Parameters

   \fI(none)\fP

.SH Return value

   An iterator or a sentinel representing the end of the enumerate_view, as described
   above.

.SH Example

    This section is incomplete
    Reason: no example

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to         Behavior as published              Correct behavior
                       ranges::distance may invoke UB for     sentinel type is returned
   LWG 3919 C++23      sized common                           for such ranges
                       non-forward underlying ranges

.SH See also

   begin       returns an iterator to the beginning
   (C++23)     \fI(public member function)\fP
   ranges::end returns a sentinel indicating the end of a range
   (C++20)     (customization point object)

.SH Category:
     * Todo no example
